#ifndef __BASE_WINDOW_H__
#define __BASE_WINDOW_H__

ROOM_BEGIN

struct WindowMessage {
	HWND _hwnd;
	UINT _msg;
	WPARAM _wparam;
	LPARAM _lparam;

	WindowMessage(HWND hwnd, UINT msg, WPARAM w, LPARAM l): 
		_hwnd(hwnd),
		_msg(msg),
		_wparam(w),
		_lparam(l) {}
};

class BaseWindow {
private:
	HWND _handle;
public:
	BaseWindow();
	~BaseWindow();
public:
	LRESULT process_winow_message(WindowMessage * msg);
	HWND handle() const;
	void show(bool visible);
};

ROOM_END

#endif

